1. Field of the Invention
The present invention relates to a graphical user interface and particularly to a system and method for dynamically grouping objects in a graphical user interface.
2. Description of the Related Art
Data processing systems are usually provided with a graphical user interface (GUI) to allow a user to control the data processing system and to present the results of user actions on the system display. In a graphical user interface, applications and data are generally presented as objects depicted on a user interface. A user is then provided with a graphical, intuitive interface to a complex data processing system which permits graphic selection of depicted objects and manipulation of applications corresponding to those objects.
It is usually possible to simultaneously execute several software applications. The execution of multiple applications simultaneously is often referred to as "multitasking". It is desirable in such environments to allow the user to view some or all of the applications simultaneously. This is often accomplished by the utilization of the concept of "windows" wherein all or part of multiple applications are displayed in separate viewports of a computer system video display system. It is known to have multiple software applications present on a computer display simultaneously, one or more of which may be active at any given time, and which may be displayed in a window or icon.
There may be several windows simultaneously present on the desktop with each window displaying information that is generated by a different application program. Each application program presents information to the user through its window by drawing images, graphics or text within the window region. The user, in turn, communicates with the application by pointing at graphical objects in the window with a pointer that is controlled by a pointing device, such as a mouse, and then selecting the objects, or by typing information via a keyboard associated with the monitor. Selection of the objects may be effected by actuating the mouse to move the pointer onto or near the objects and pressing and quickly releasing, i.e. clicking, a button on the mouse, or by manipulating a cursor via the keyboard.
These user interface objects may be easily manipulated utilizing a standard set of interface commands. For example, the user may move the objects around on the display screen, change their sizes and appearances, shrink down a window to a so-called icon, rearrange the objects with respect to their relative background/foreground position so as to arrange the desktop in a convenient manner, etc.
There are a number of different graphical user interface environments commercially available which utilize the arrangement described above. These environments include the System 7 operating system developed by Apple Computer, Inc. (System 7 is a trademark of Apple Computer, Inc.), the Windows graphical user interface developed by the Microsoft Corporation (Windows is a trademark of Microsoft Corporation) and the OS/2 Presentation Manager developed by International Business Machines Corporation (OS/2 and Presentation Manager are trademarks of International Business Machines Corporation).
A problem in a graphical user interface is that when several applications are opened simultaneously, the desktop may assume a cluttered appearance. Most GUI provide users with the possibility of grouping objects and placing them inside other objects represented as folders. There are usually two different ways for creating such groups: by static definition or by mapping. Statically defined groups are, for example, the Windows 3.x Groups or the OS/2 Warp Folders. These groups can be created by an application, for example an installation program, or by the user creating, moving or copying objects directly into the group. Mapped groups represents physical data available through the system, usually arranged as a hierarchy. For example a file system or a representation of a network. Unlike statically defined groups, the mapped groups cannot be modified by the user without modifying the corresponding physical elements. On the other hand these mapped groups are continuously updated to match any change in the physical hierarchy.
It is obvious that a group with too many objects is not convenient to handle, because it is more laborious to retrieve a specific object when the group is open. Furthermore a group with a lot of objects takes more time to appear on the screen, especially when some automatic ordering is requested when presenting objects.
For the above reasons, when a group contains many objects it is advisable to create nested sub-groups, each containing a portion of the objects, in order to make it easier retrieve and access the single objects. In the state of the art operating system, this requires a manual intervention by the user or the creation of statically defined groups by a program. Anyway the sub-groups so created should be maintained when the number of objects increases in order to avoid again having too many objects in a single group. Often this requires a rearrangement of all the groups and laborious maintenance operations.
It is an object of the present invention to provide a technique which alleviates the above drawbacks.